Run length encoding is a type of lossless compression that utilizes the fact that many files frequently contain the same entity repeated many times in a row. For example, text files use multiple spaces to separate sentences, indent paragraphs, format tables and charts, etc. Digitized signals can also have runs consisting of pixels with the same value, indicating that the signal is not changing over several adjacent pixels. For example, in a data sequence having a long run of zeros, two values are written to the output file to represent that sequence. The first of these is generally the digital value of the sequence of pixels (a zero in this case). The second is the number of zeros, or in other words, the length of the run. If the average run length is longer than two, compression will take place. Many different run length encoding schemes have been developed.
Quite common among digital front ends (DFEs) is the ability to identify object types (text, image, strokes, fill, line art, etc.) embedded in a given page description language (PDL) master. These object types can then be used to optimize the processing of the contone data prior to transmission to the print engine. For some engines, it is possible to supply rendering “hints” or “tags” for each pixel, allowing the engine to optimally render the objects on the page, pixel by pixel. For example, for some printers, the tags are simply halftone screen specifications, and the DFE has complete control over the way each pixel is rendered.
Other engines also have the capability to accept tags or hints to optimize rendering, and these are generally assigned based on the object type. For these engines, a tag or hint tells the rendering engine which rendering conditions to use for a particular object. These tags or hints are generally specified for the entire object. Positive tinted text on white, in the case of some printers, is assigned the “text” hint. For some printing systems, for example the Xerox iGen3, the text hint may instruct the engine rendering module to place high-resolution outline cells at the perimeter of the object (while rendering the body of the text with the default halftone), a method that generally will improve the sharpness of the text. Similarly, negative (white) text on a tinted background may receive the “text” hint, and the background may receive the “fill” hint. For some printers such as iGen3, outlining is explicitly disabled for the “fill” hint. Since all of the pixels that would be converted to outline cells reside on the “fill” portion of the white text/fill boundary, no outlining would therefore be realized for negative text. This presents a serious image quality defect for white text objects on tinted fills, as the edges of this negative text may appear ragged. The problem can also exist at the boundaries of two different object types in which a hint for one object explicitly disables rendering that would be pleasing at the boundary of the other object.